size_allocate() allocates the available space for the margin box,
get_allocation() returns the actual space of the content box and those
can be different. And then animations never stop.
If that makes you go "huh?", you might want to read
http://www.w3.org/TR/CSS21/box.html
and the docs for gtk_widget_compute_align().
toolbar_content_size_allocate (ToolbarContent *content,
GtkAllocation *allocation)
{
+ GtkAllocation goal;
+
gtk_widget_size_allocate (GTK_WIDGET (content->item),
allocation);
+
+ toolbar_content_get_goal_allocation (content, &goal);
+ if (goal.x == allocation->x &&
+ goal.y == allocation->y &&
+ goal.width == allocation->width &&
+ goal.height == allocation->height)
+ {
+ gtk_widget_get_allocation (GTK_WIDGET (content->item), &goal);
+ toolbar_content_set_goal_allocation (content, &goal);
+ }
}
static void